{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Z5Ejib3iSzoE"
      },
      "source": [
        "##### Copyright 2020 The TensorFlow Authors.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "omitwYmIS6yW"
      },
      "outputs": [],
      "source": [
        "#@title Licensed under the Apache License, Version 2.0 (the \"License\"); { display-mode: \"form\" }\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MMyOuHpSS0QZ"
      },
      "source": [
        "# Chapter 2 - Small Worlds and Large Worlds\n",
        "\n",
        "\u003ctable class=\"tfo-notebook-buttons\" align=\"left\"\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/probability/examples/statistical_rethinking/notebooks/02_small_worlds_and_large_worlds\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" /\u003eView on TensorFlow.org\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/statistical_rethinking/notebooks/02_small_worlds_and_large_worlds.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/statistical_rethinking/notebooks/02_small_worlds_and_large_worlds.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/probability/examples/statistical_rethinking/notebooks/02_small_worlds_and_large_worlds.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "\u003c/table\u003e"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3sNvGQyVS0Qc"
      },
      "source": [
        "## Imports and utility functions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "KeteUrbrSl53"
      },
      "outputs": [],
      "source": [
        "#@title Install { display-mode: \"form\" }\n",
        "TF_Installation = 'System' #@param ['TF Nightly', 'TF Stable', 'System']\n",
        "\n",
        "if TF_Installation == 'TF Nightly':\n",
        "  !pip install -q --upgrade tf-nightly\n",
        "  print('Installation of `tf-nightly` complete.')\n",
        "elif TF_Installation == 'TF Stable':\n",
        "  !pip install -q --upgrade tensorflow\n",
        "  print('Installation of `tensorflow` complete.')\n",
        "elif TF_Installation == 'System':\n",
        "  pass\n",
        "else:\n",
        "  raise ValueError('Selection Error: Please select a valid '\n",
        "                   'installation option.')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "nJQ9veehSoxy"
      },
      "outputs": [],
      "source": [
        "#@title Install { display-mode: \"form\" }\n",
        "TFP_Installation = \"System\" #@param [\"Nightly\", \"Stable\", \"System\"]\n",
        "\n",
        "if TFP_Installation == \"Nightly\":\n",
        "  !pip install -q tfp-nightly\n",
        "  print(\"Installation of `tfp-nightly` complete.\")\n",
        "elif TFP_Installation == \"Stable\":\n",
        "  !pip install -q --upgrade tensorflow-probability\n",
        "  print(\"Installation of `tensorflow-probability` complete.\")\n",
        "elif TFP_Installation == \"System\":\n",
        "  pass\n",
        "else:\n",
        "  raise ValueError(\"Selection Error: Please select a valid \"\n",
        "                   \"installation option.\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "VPkU4fOLS0Q2"
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import arviz as az\n",
        "import pandas as pd\n",
        "import tensorflow as tf\n",
        "import tensorflow_probability as tfp\n",
        "import scipy.stats as stats\n",
        "\n",
        "# visualization \n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# aliases\n",
        "tfd = tfp.distributions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Qgwz-BlcS0RL"
      },
      "outputs": [],
      "source": [
        "az.style.use('seaborn-colorblind')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xPV-Aq_Dnj8k"
      },
      "source": [
        "### 2.1.3. From counts to probability\n",
        "Suppose we have a bag of four marbles, each of which can be either blue or white. There are five possible compositions of the bag, ranging from all white marbles to all blue marbles. Now, suppose we make three draws with replacement from the bag, and end up with blue, then white, then blue. If we were to count the ways that each bag composition could produce this combination of samples, we would find the vector in `ways` below. For example, there are zero ways that four white marbles could lead to this sample, three ways that a bag composition of one blue marble and three white marbles could lead to the sample, as so on.\n",
        "\n",
        "We can convert these counts to probabilities by simply dividing the counts by the sum of all the counts.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GfRmma8d5sLr"
      },
      "source": [
        "##### Code 2.1"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "UoFLpYYFS0RS",
        "outputId": "385d4476-e231-47b2-f0d6-a28b3b8c0a8c"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "\u003ctf.Tensor: shape=(5,), dtype=float32, numpy=array([0.  , 0.15, 0.4 , 0.45, 0.  ], dtype=float32)\u003e"
            ]
          },
          "execution_count": 0,
          "metadata": {
            "tags": []
          },
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# define a list of constants\n",
        "# divide by ways each value can occur\n",
        "ways = tf.constant([0., 3, 8, 9, 0])\n",
        "new_ways = ways / tf.reduce_sum(ways)\n",
        "new_ways"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gk7yyiB0nj8o"
      },
      "source": [
        "#### 2.3.2.1. Observed variables\n",
        "\n",
        "Consider a globe of the earth that we toss into the air nine times. We want to compute the probability that our right index finger will land on water six times out of nine. We can use the binomial distribution to compute this, using a probability of 0.5 of landing on water on each toss.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LtG8Uing5wyk"
      },
      "source": [
        "##### Code 2.2"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ESPv8J61S0RY",
        "outputId": "fb9af5bc-cb7d-4860-da8b-49860d29e915"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "\u003ctf.Tensor: shape=(), dtype=float32, numpy=0.16406254\u003e"
            ]
          },
          "execution_count": 0,
          "metadata": {
            "tags": []
          },
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# probability of 6 successes in 9 trials with 0.5 probability\n",
        "\n",
        "tfd.Binomial(total_count=9, probs=0.5).prob(6)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pj8JZUA3nj8s"
      },
      "source": [
        "### 2.4.3.Grid Approximation\n",
        "Create a grid approximation for the globe tossing model, for the scenario described in the section above. In the grid approximation technique, we approximate a continuous posterior distribution by using a discrete grid of parameter values.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-4vK6NAJ58kY"
      },
      "source": [
        "\n",
        "##### Code 2.3"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "XyHFbztDS0Rf",
        "outputId": "c2be93a8-e58e-494a-959b-89a4e546ff03"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "\u003ctf.Tensor: shape=(20,), dtype=float32, numpy=\n",
              "array([0.00000000e+00, 7.98984274e-07, 4.30771906e-05, 4.09079541e-04,\n",
              "       1.89388765e-03, 5.87387430e-03, 1.40429335e-02, 2.78517436e-02,\n",
              "       4.78011407e-02, 7.28073791e-02, 9.98729542e-02, 1.24264322e-01,\n",
              "       1.40314341e-01, 1.42834887e-01, 1.28943324e-01, 9.98729020e-02,\n",
              "       6.20589107e-02, 2.64547635e-02, 4.65966761e-03, 0.00000000e+00],\n",
              "      dtype=float32)\u003e"
            ]
          },
          "execution_count": 0,
          "metadata": {
            "tags": []
          },
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# define grid\n",
        "n_points = 20 # change to an odd number for Code 2.5 graphs to \n",
        "              # match book examples in Figure 2.6\n",
        "p_grid = tf.linspace(start=0., stop=1., num=n_points)\n",
        "\n",
        "#define prior\n",
        "prior = tf.ones([n_points])\n",
        "\n",
        "# compute likelihood at each value in grid\n",
        "likelihood = tfd.Binomial(total_count=9, probs=p_grid).prob(6)\n",
        "\n",
        "# compute product of likelihood and prior\n",
        "unstd_posterior = likelihood * prior\n",
        "\n",
        "# standardize the posterior, so it sums to 1\n",
        "posterior = unstd_posterior / tf.reduce_sum(unstd_posterior)\n",
        "\n",
        "posterior"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JWiIX268S0Rj"
      },
      "source": [
        "##### Code 2.4"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 295
        },
        "id": "vElv3TsiS0Rl",
        "outputId": "77b2bdff-390b-4910-c38e-0212b2a0e312"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 900x400 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "_, ax = plt.subplots(figsize=(9, 4))\n",
        "ax.plot(p_grid, posterior, \"-o\")\n",
        "ax.set(\n",
        "    xlabel=\"probability of water\",\n",
        "    ylabel=\"posterior probability\",\n",
        "    title=\"20 points\");"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SVXX6-ddYcVH"
      },
      "source": [
        "##### Code 2.3 and 2.4 using TFP distributions (OPTIONAL)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tP-aP-B-MVLt"
      },
      "source": [
        "To replicate the other two priors depicted in Figure 2.6 in the text, try using the following priors, one at time in the Code 2.3 sample above."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vVd273Wpnj8y"
      },
      "source": [
        "##### Code 2.5"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 313
        },
        "id": "dAyqLbf6cIA2",
        "outputId": "6bcffc6c-66fa-4156-fb2a-5afd60b04522"
      },
      "outputs": [
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAEoCAYAAAAt0dJ4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlcVOX+B/DPwMi+b8owyOIoIIio\noIgbaYqS4pphueU1oqz0/qqbdVvMul69N7stdCPKNEuhXTSFNFPLFQFXcEEFZAZFUEE2WYbn94c5\nNwQCEzgDfN6vl68XM+c553zmUc/Dd845z5EJIQSIiIiIiIhIcgZSByAiIiIiIqJbWKARERERERHp\nCRZoREREREREeoIFGhERERERkZ5ggUZERERERKQnWKARERERERHpCRZoRPfo4sWLsLCwgFarlToK\nAP3LQ0REdNu6deswfPjwVtveihUrsHDhwlbbHpE+YIFG1ELu7u4wNTWFhYWF7k9+fj569uyJsrIy\nGBoa3vU2W3ugAnBPeYiIqGPbu3cvQkJCYG1tDTs7OwwbNgyHDx+WOlabeemll/DJJ59IHYOoVbFA\nI7oLW7ZsQVlZme6PQqH4w/ZCCNTV1bVTOqC2tlbS9YmISDo3btzAxIkT8fTTT+PatWvQaDR47bXX\nYGxsLHW0NnEvYxbHO9JnLNCI7lFOTg5kMpnuYB8aGoq///3vGDZsGMzMzHDhwgWsW7cOnp6esLS0\nhIeHBzZs2IBTp04hOjoaBw4cgIWFBWxsbBrdfmhoKF588UUMHjwY1tbWmDx5Mq5du1Zv32vWrEHP\nnj0xevToBnny8/MREREBOzs7qFQqfPzxx7ptL1u2DDNmzMDs2bNhZWWFdevWtW1nERFRmzl79iwA\nYNasWTA0NISpqSnGjRsHf39/XZtPP/0UPj4+sLW1RVhYGHJzc3XLMjIyMHbsWNjZ2aF79+5YsWIF\nAKCqqgpLliyBQqGAQqHAkiVLUFVVBQDYvXs3lEolVq9eDScnJzg7O2Pt2rW6bV69ehURERGwsrLC\n4MGDcf78+Sbz3x6/4uLioFAo4OzsjNWrV+uWNzZmLVu2DLNnz9a12bx5M3x9fWFjY4PQ0FCcOnVK\nt8zd3R2rVq2Cv78/zM3NWaSR3mKBRtQGPv/8c8TFxaG0tBSOjo545plnkJSUhNLSUuzfvx8BAQHw\n8fFBbGwshg4dirKyMhQXFze5vfXr1+PTTz9Ffn4+5HI5nnnmmXrL9+zZg1OnTuHHH39ssO6sWbOg\nVCqRn5+Pb775Bi+99BJ27typW56YmIgZM2aguLgYjzzySOt1AhERtas+ffrA0NAQ8+bNQ1JSEq5f\nv15v+aZNm7BixQp89913KCwsxIgRIzBr1iwAQGlpKe6//36MHz8e+fn5OHfuHMaMGQMA+Mc//oGD\nBw/i6NGjOHbsGFJSUvDmm2/qtnv58mWUlJRAo9FgzZo1WLRokW7fixYtgomJCS5duoRPP/0Un376\nabOfY9euXcjKysL27duxcuVK/PTTT7plfzRmnT17FrNmzcI777yDwsJChIeHY9KkSaiurta1iY+P\nx9atW1FcXAy5XH6XPUzUPligEd2FKVOmwMbGBjY2NpgyZUqT7ebPnw9fX1/I5XLI5XIYGBjg5MmT\nqKyshLOzM3x9fe9qv3PmzIGfnx/Mzc3xxhtv4Kuvvqo3CciyZctgbm4OU1PTeuvl5eVh7969WLVq\nFUxMTBAQEICFCxfi888/17UZOnQopkyZAgMDgwbrExFRx2FlZYW9e/dCJpPhscceg6OjIyIiIlBQ\nUAAA+Oijj/Diiy/Cx8cHcrkcL730Eo4ePYrc3Fz88MMP6NGjB5599lmYmJjA0tISQ4YMAQBs2LAB\nr776KpycnODo6IjXXnut3jjSrVs3vPrqq+jWrRvCw8NhYWGBM2fOQKvV4ttvv8Xy5cthbm4OPz8/\nzJs3r9nP8dprr8Hc3Bz9+vXDo48+ivj4eN2yPxqzvvzySzzwwAMYO3YsunXrhueeew6VlZXYv3+/\nrs0zzzwDV1dXjnek11igEd2FTZs2obi4GMXFxdi0aVOT7VxdXXU/m5ub48svv0RsbCycnZ3xwAMP\n4PTp03e1399vz83NDTU1NSgqKmp0+e/l5+fDzs4OlpaW9dbXaDTNrktERB2Pj48P1q1bB7VajZMn\nTyI/Px9LliwBAOTm5mLx4sW6Lxrt7OwghIBGo0FeXh569erV6Dbz8/Ph5uame+3m5ob8/Hzda3t7\n+3pno8zMzFBWVobCwkLU1tY2GMOac2f73+/rj8asO3MaGBjA1dWVYx51OCzQiNqATCar9zosLAw7\nduzApUuX4O3tjccee6zRdk3Jy8vT/Xzx4kV069YNDg4OTe7vNoVCgWvXrqG0tLTe+i4uLs2uS0RE\n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\nYII=\n",
            "text/plain": [
              "\u003cFigure size 1200x400 with 4 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "first_prior = tf.where(condition=p_grid \u003c 0.5, x=0., y=1)\n",
        "second_prior = tf.exp(-5 * abs(p_grid - 0.5))\n",
        "\n",
        "_, axes = plt.subplots(nrows=2, ncols=2, figsize=(12, 4), \n",
        "                       constrained_layout=True)\n",
        "\n",
        "axes[0, 0].plot(p_grid, first_prior)\n",
        "axes[0, 0].set_title('First prior')\n",
        "axes[1, 0].plot(p_grid, first_prior * likelihood)\n",
        "axes[1, 0].set_title('First posterior')\n",
        "\n",
        "axes[0, 1].plot(p_grid, second_prior)\n",
        "axes[0, 1].set_title('Second prior')\n",
        "axes[1, 1].plot(p_grid, second_prior * likelihood)\n",
        "axes[1, 1].set_title('Second posterior');"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "R0SbhnucTC5h"
      },
      "source": [
        "### 2.4.4. Quadratic Approximation"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SZQ1tRLUnj83"
      },
      "source": [
        "###### Code 2.6\n",
        "\n",
        "TFP doesn't natively provide a `quap` function, like in the book. But it has a lot of optimization tools. We'll use `bfgs`, which gives us a somewhat straightforward way to get both the measurement and the standard error."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "zZiddZbZS0R2"
      },
      "outputs": [],
      "source": [
        "W = 6\n",
        "L = 3\n",
        "dist = tfd.JointDistributionNamed({\n",
        "    \"water\": lambda probability: tfd.Binomial(total_count=W + L, \n",
        "                                              probs=probability),\n",
        "    \"probability\": tfd.Uniform(low=0., high=1.)\n",
        "})\n",
        "\n",
        "def neg_log_prob(x):\n",
        "    return tfp.math.value_and_gradient(\n",
        "          lambda p: -dist.log_prob(\n",
        "              water=W, \n",
        "              probability=tf.clip_by_value(p[-1], 0., 1.)), \n",
        "          x,\n",
        "    )\n",
        "\n",
        "results = tfp.optimizer.bfgs_minimize(neg_log_prob, initial_position=[0.5])\n",
        "assert results.converged"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tB8PVNdPicpA"
      },
      "source": [
        "The results object itself has a lot of information about the optimization process. The estimate is called the `position`, and we get the standard error from the `inverse_hessian_estimate`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "LlC6vm6PiH9O",
        "outputId": "e767bc6d-3ee2-45c2-edb8-6f02fa087ff0"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "mean: tf.Tensor([[0.6666667]], shape=(1, 1), dtype=float32) \n",
            "standard deviation:  tf.Tensor([[0.15718359]], shape=(1, 1), dtype=float32)\n"
          ]
        }
      ],
      "source": [
        "approximate_posterior = tfd.Normal(\n",
        "    results.position,\n",
        "    tf.sqrt(results.inverse_hessian_estimate),\n",
        ")\n",
        "\n",
        "print(\n",
        "    \"mean:\", approximate_posterior.mean(),\n",
        "    \"\\nstandard deviation: \", approximate_posterior.stddev(),\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fu6MUl4lXpae"
      },
      "source": [
        "Let's compare the mean and standard deviation from the quadratic approximation with an analytical approach based on the Beta distribution."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Jzlu9G8pnj85"
      },
      "source": [
        "###### Code 2.7"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 295
        },
        "id": "kVmC9WRbS0R6",
        "outputId": "1ff1d419-d686-4793-8d0c-90cc5a02b916"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\nUVZWFh04cIAKCwspLy+PBg4cWO6H1NfXV7xNkvbviBEjqE+fPpSXl0cpKSnUpk0b2rp1qzguHo9H\nmzdvJqFQSL/99hsZGhqKE+cPvZ+sEhHdv3+flJWV6dSpU1RaWkrLli2j1q1bl0sc37dz507Kysoi\ngUBAK1asoBYtWlBxcTERvT2PFBUV6dixYyQUCmnmzJnk4eEhXraqa+3d/o2KiiJDQ0PxD3NmZiYp\nKSnR8+fPJW7Dh0mLn58fBQUFUU5ODpWWltL58+clbktV509l50qHDh1ox44dRESUn59PV69elRgL\nEdGhQ4eodevWlJCQQAKBgBYtWkSenp7ljvUXX3xB2dnZVFRUJP6susf/w+8opu6xpKUZ2bVrF7Vo\n0aLSMhYWFnTs2DHx9MmTJ8nU1JSI3v448vl8EgqFRESUl5dHAOjatWvi8q6uruIf7Hnz5pX74hSJ\nRGRgYFDuL8T3OTk50eHDh4no7ReCiYlJufmSfrze/0EODAykpUuXEhFRly5daNOmTeJ5p0+flpq0\nXLhwocKPjaenZ7WTlg9NmTKFpk6dSkRECxYsoEGDBonnFRQUkLy8fLmkxcfHR+J63lm9ejX169dP\nat3vJy1XrlwhXV3dShPTmtTzLgkkItqwYQN99tlnRPR2n3y4z9q1ayf+MfH19aUff/xRPC8tLY24\nXK44ESEimjlzJo0aNUo8/ffff5OxsTHp6OiUO66SjntkZKR42tXVlX7++Wfx9LRp02jKlCkSt/HW\nrVukqakpnq4saREKhaSgoEDx8fHieZs2bSJfX19xXK1btxbPKywsJAD07NkziXV/+IO/cOFCCgwM\nFE+LRCIyMjKiiIgIict/SFNTU3znct68efT555+L58XHxxOfz5e67IfX2vv718bGhk6dOkVERL/+\n+iv17NlT6ja8nyg8ffqUOBwO5eTkVBl7ZedPVeeKj48PzZ07lzIzM8utU1LS0qNHD3GSQfR2Hysp\nKYnvtgCgs2fPlltPTY7/h99RTN1jbVqaER0dHWRlZVX67PXp06cwNTUVT5uamuLp06fl1vGu0Z2S\nkhIAoEWLFuL5SkpKKCgoEE+bmJiI/8/lcmFsbCxe344dO+Ds7AxNTU1oamoiLi4OWVlZEpeVxsDA\nQPx/ZWVlcd1Pnz4tt3xl63r69ClatmwJDodTbrurKyoqCl26dIGenh40NDSwadMm8XZ8GIeKigp0\n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\nAElFTkSuQmCC\n",
            "text/plain": [
              "\u003cFigure size 900x400 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "_, ax = plt.subplots(figsize=(9, 4))\n",
        "\n",
        "x = tf.linspace(0., 1., num=101)\n",
        "ax.plot(x, tfd.Beta(W + 1, L + 1).prob(x), label='Analytic posterior')\n",
        "# values obained from quadratic approximation\n",
        "ax.plot(x, tf.squeeze(approximate_posterior.prob(x)), \"--\", \n",
        "         label='Quadratic approximation')\n",
        "\n",
        "ax.set(\n",
        "    xlabel='Probability of water',\n",
        "    ylabel='Posterior probability',\n",
        "    title='Comparing quadratic approximation to analytic posterior'\n",
        ")\n",
        "ax.legend();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qLNsqYtjS0SA"
      },
      "source": [
        "### 2.4.5. Markov chain Monte Carlo\n",
        "\n",
        "We can estimate the posterior using a Markov chain Monte Carlo (MCMC) technique, which will be explained further in Chapter 9. An outline of the algorithm follows. It is written primarily in numpy to illustrate the steps you would take."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "UiBOoor-Zzyn"
      },
      "source": [
        "```\n",
        "n_samples = 1000\n",
        "p = np.zeros(n_samples)\n",
        "p[0] = 0.5\n",
        "W = 6\n",
        "L = 3\n",
        "for i in range(1, n_samples):\n",
        "    p_new = tfd.Normal(loc=p[i - 1], scale=0.1).sample(1)\n",
        "    if p_new \u003c 0:\n",
        "        p_new = -p_new\n",
        "    if p_new \u003e 1:\n",
        "        p_new = 2 - p_new\n",
        "    q0 = tfd.Binomial(total_count=W+L, probs=p[i - 1]).prob(W)\n",
        "    q1 = tfd.Binomial(total_count=W+L, probs=p_new).prob(W)\n",
        "    if stats.uniform.rvs(0, 1) \u003c q1 / q0:\n",
        "        p[i] = p_new\n",
        "    else:\n",
        "        p[i] = p[i - 1]\n",
        "```"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "f3e4-w10aC8U"
      },
      "source": [
        "But to actually use Metropolis Hastings in TFP, you can use the `mcmc` library. The version of the algorithm that we want is called `RandomWalkMetropolis`."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "X_4P9ZCAQyny"
      },
      "source": [
        "##### Code 2.8"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "_3Mt3mxOS0SA"
      },
      "outputs": [],
      "source": [
        "@tf.function\n",
        "def do_sampling():\n",
        "  def get_model_log_prob(probs):\n",
        "    return tfd.Binomial(total_count=W + L, probs=probs).log_prob(W)\n",
        "\n",
        "  sampling_kernel = tfp.mcmc.RandomWalkMetropolis(get_model_log_prob)\n",
        "\n",
        "  return tfp.mcmc.sample_chain(\n",
        "      num_results=5000,\n",
        "      current_state=.5,\n",
        "      kernel=sampling_kernel,\n",
        "      num_burnin_steps=500,\n",
        "    trace_fn=None, \n",
        "  )\n",
        "\n",
        "samples = do_sampling()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IBQ6ZOLkS0SF"
      },
      "source": [
        "##### Code 2.9"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "g4uVnKBPmMQA"
      },
      "source": [
        "With the samples from the posterior distribution in `p`, we can compare the results of the MCMC approximation to the analytical posterior."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 279
        },
        "id": "08XK5SxmS0SF",
        "outputId": "1e5c4130-6a38-4873-d1a2-57e0fc1dcad3"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\nTkSuQmCC\n",
            "text/plain": [
              "\u003cFigure size 900x400 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "_, ax = plt.subplots(figsize=(9, 4))\n",
        "\n",
        "az.plot_kde(samples, label=\"Metropolis approximation\", ax=ax)\n",
        "x = tf.linspace(0., 1., num=100)\n",
        "ax.plot(x, tfd.Beta(W + 1, L + 1).prob(x), \"C1\", label=\"True posterior\")\n",
        "ax.legend();"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [],
      "name": "02_small_worlds_and_large_worlds.ipynb",
      "provenance": [],
      "toc_visible": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.6.10"
    },
    "toc": {
      "base_numbering": 1,
      "nav_menu": {},
      "number_sections": true,
      "sideBar": true,
      "skip_h1_title": false,
      "title_cell": "Table of Contents",
      "title_sidebar": "Contents",
      "toc_cell": false,
      "toc_position": {},
      "toc_section_display": true,
      "toc_window_display": false
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
